package com.sc.nft.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sc.nft.entity.DaoPledgeProduce;
import com.sc.nft.mapper.DaoPledgeProduceMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * dao质押活动产出表(sc_dao_pledge_produce)数据DAO
 *
 * @author jinpinhai
 * @since 2024-11-26 17:14:03
 */
@Slf4j
@Repository
public class DaoPledgeProduceDao extends ServiceImpl<DaoPledgeProduceMapper, DaoPledgeProduce> {


    /**
     * 获取批次信息
     * @param pledgeId 质押id
     * @param batch 批次
     * @return DaoPledgeProduce
     */
    public DaoPledgeProduce getPledgeBatch(Long pledgeId, Integer batch) {
        LambdaQueryWrapper<DaoPledgeProduce> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(DaoPledgeProduce::getPledgeId, pledgeId);
        wrapper.eq(DaoPledgeProduce::getBatch, batch);
        return getOne(wrapper);
    }

    /**
     * 统计质押期数总批次
     * @param pledgeId 质押id
     * @return 批次数
     */
    public Integer countPledgeBatch(Long pledgeId) {
        LambdaQueryWrapper<DaoPledgeProduce> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(DaoPledgeProduce::getPledgeId, pledgeId);
        return count(wrapper);
    }

    /**
     * 根据质押id获取总奖励列表
     * @param pledgeId 质押id
     * @return DaoPledgeProduce
     */
    public List<DaoPledgeProduce> listPledgeProduce(Long pledgeId) {
        LambdaQueryWrapper<DaoPledgeProduce> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(DaoPledgeProduce::getPledgeId, pledgeId);
        return list(wrapper);
    }


    public List<DaoPledgeProduce> listByPledgeId(Long pledgeId) {
        LambdaQueryWrapper<DaoPledgeProduce> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DaoPledgeProduce::getPledgeId, pledgeId);
        queryWrapper.orderByAsc(DaoPledgeProduce::getBatch);
        return list(queryWrapper);
    }

}